﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SACM.Common.Constantes;

namespace SACM.Utils.Extensions
{
    public static class Combo
    {
        public static void ObtenEstadoCivil(this GandA.Web.UI.Controls.DropDownList combo)
        {
            ConsultaServiceReference.ConsultaServiceClient servicio = new ConsultaServiceReference.ConsultaServiceClient();
            //Parámetros
            
            //Ejecuta consulta
            combo.DataTextField = Columnas.Descripcion;
            combo.DataValueField = Columnas.IdEstadoCivil;
            combo.DataSource = servicio.EjecutaConsultaSinParametros(General.SACM + ".spObtenEstadoCivil");
            combo.DataBind();
        }

        public static void ObtenDoctores(this GandA.Web.UI.Controls.ComboBox combo, int idEmpresa, int idSucursal)
        {
            ArrayList parametros = new ArrayList();
            ConsultaServiceReference.ConsultaServiceClient servicio = new ConsultaServiceReference.ConsultaServiceClient();
            //Parámetros
            parametros.Add(CreaParametroConsulta("@psNombre", null, ConsultaServiceReference.Parameter.vEnumType.VarChar));
            parametros.Add(CreaParametroConsulta("@pnIdDoctor", null, ConsultaServiceReference.Parameter.vEnumType.Int));
            parametros.Add(CreaParametroConsulta("@pnIdEmpresa", idEmpresa, ConsultaServiceReference.Parameter.vEnumType.Int));
            parametros.Add(CreaParametroConsulta("@pnIdSucursal", idSucursal, ConsultaServiceReference.Parameter.vEnumType.Int));
            ConsultaServiceReference.Parameter[] prms = new ConsultaServiceReference.Parameter[parametros.Count];
            parametros.CopyTo(prms);

            //Ejecuta consulta

            combo.DataTextField = Columnas.NombreCompleto;
            combo.DataValueField = Columnas.IdDoctor;

            combo.DataSource = servicio.EjecutaConsultaConParametros(General.SACM + ".spObtenDoctores", prms);
            combo.DataBind();

       }


        public static void DoctoresCmb(this GandA.Web.UI.Controls.ComboBox combo)
        {
         
            ConsultaServiceReference.ConsultaServiceClient servicio = new ConsultaServiceReference.ConsultaServiceClient();
            //Parámetros
           
            //Ejecuta consulta

            combo.DataTextField = Columnas.NombreCompleto;
            combo.DataValueField = Columnas.IdDoctor;

            combo.DataSource = servicio.EjecutaConsultaSinParametros(General.SACM + ".SpDoctoresCmb");
            combo.DataBind();

        }

        public static void PacientesCmb(this GandA.Web.UI.Controls.ComboBox combo)
        {

            ConsultaServiceReference.ConsultaServiceClient servicio = new ConsultaServiceReference.ConsultaServiceClient();
            //Parámetros

            //Ejecuta consulta

            combo.DataTextField = Columnas.NombreCompleto;
            combo.DataValueField = Columnas.IdPaciente;

            combo.DataSource = servicio.EjecutaConsultaSinParametros(General.SACM + ".SpPacientesCmb");
            combo.DataBind();

        }

        public static void ObtenPacientes(this GandA.Web.UI.Controls.ComboBox combo, int idEmpresa, int idSucursal)
        {
            ArrayList parametros = new ArrayList();
            ConsultaServiceReference.ConsultaServiceClient servicio = new ConsultaServiceReference.ConsultaServiceClient();
            //Parámetros
            parametros.Add(CreaParametroConsulta("@psNombre", null, ConsultaServiceReference.Parameter.vEnumType.VarChar));
            parametros.Add(CreaParametroConsulta("@pnIdPaciente", null, ConsultaServiceReference.Parameter.vEnumType.Int));
            parametros.Add(CreaParametroConsulta("@pnIdEmpresa", idEmpresa, ConsultaServiceReference.Parameter.vEnumType.Int));
            parametros.Add(CreaParametroConsulta("@pnIdSucursal", idSucursal, ConsultaServiceReference.Parameter.vEnumType.Int));
            ConsultaServiceReference.Parameter[] prms = new ConsultaServiceReference.Parameter[parametros.Count];
            parametros.CopyTo(prms);

            //Ejecuta consulta

            combo.DataTextField = Columnas.NombreCompleto;
            combo.DataValueField = Columnas.IdPaciente;

            combo.DataSource = servicio.EjecutaConsultaConParametros(General.SACM + ".spObtenPacientes", prms);
            combo.DataBind();

        }

        public static ConsultaServiceReference.Parameter CreaParametroConsulta(string _nombreParametro, object _valor, ConsultaServiceReference.Parameter.vEnumType _type)
        {
            ConsultaServiceReference.Parameter p = new ConsultaServiceReference.Parameter();
            p.nombreParametro = _nombreParametro;
            p.valor = _valor;
            p.type = _type;

            return p;
        }
    }
}
